﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BiliBiliCSharpStudy.clazz.oop;

/**
 * 
 *  严重性	代码	说明	项目	文件	行	禁止显示状态
    错误		项目“..\BabyStroller\BabyStroller.csproj”指向“netcoreapp3.1”。
    它不能被指向“.NETFramework,Version=v4.7.2”的项目引用。			
 *
 */
namespace BiliBiliCSharpStudy {
    class Program {
        /**
         * 快捷键： 
         * F12 : 查看类的源文件 ;  `ctrl + -` : 返回
         * F1 : 查看帮助
         * ctrl + k, ctrl + / : 注释
         * ctrl + k, ctrl + d : 格式化代码
         * cw tab tab : 
         * ctor tab : 
         * 
         * ctrl + ] : 在两个括号之间跳转
         * 
         * sw tab tab : switch 的快捷键
         * 
         * prop tab tab : 快速编写“属性”          (简写)
         * propfull tab tab : 快速编写“属性”      (完整)
         * ctrl + r, ctrl + e : 也可以快速的生成“属性”代码；编辑 -> 重构 -> 封装字段
         * 
         * ctrl + d : 复制一行
         * ctrl + l : 删除一行
         * 
         * ctrl + . : 智能提示
         * alt + enter : 智能提示
         * 
         */
        static void Main(string[] args) {


            //BiliBiliCSharpStudy.ch30.d10.GenericAndDelegate2Lambda.Demo();
            //BiliBiliCSharpStudy.ch30.d09.GenericAndDelegate1.Demo();
            //BiliBiliCSharpStudy.ch30.d08.HelloGeneric8.Demo();
            //BiliBiliCSharpStudy.ch30.d07.HelloGeneric7.Demo();
            //BiliBiliCSharpStudy.ch30.d04.HelloGeneric4.Demo();
            //BiliBiliCSharpStudy.ch30.d03.HelloGeneric3.Demo();
            //BiliBiliCSharpStudy.ch30.d01.HelloGeneric1.Demo();
            //BiliBiliCSharpStudy.clazz.ch29.d05.IspExample05.Demo();
            //BiliBiliCSharpStudy.clazz.ch29.d04.IspExample04.Demo();
            //BiliBiliCSharpStudy.clazz.ch29.d03.IspExample03.Demo();
            //BiliBiliCSharpStudy.clazz.ch29.d02.IspExample02.Demo();
            //BiliBiliCSharpStudy.clazz.ch29.d01.IspExample01.Demo();
            //BiliBiliCSharpStudy.clazz.ch28.d06.InterfaceDemo6.Demo();
            //BiliBiliCSharpStudy.clazz.ch28.d05.InterfaceDemo5.Demo();
            //BiliBiliCSharpStudy.clazz.ch28.d04.InterfaceDemo4.Demo();
            //BiliBiliCSharpStudy.clazz.ch28.d03.InterfaceDemo3.Demo();
            //BiliBiliCSharpStudy.clazz.ch28.d02.InterfaceDemo2.Demo();
            //BiliBiliCSharpStudy.clazz.ch28.d01.InterfaceDemo.Demo();
            //BiliBiliCSharpStudy.clazz.ch27.d06.PatternDemo06.Demo();
            //BiliBiliCSharpStudy.clazz.ch27.d05.PatternDemo05.Demo();
            //BiliBiliCSharpStudy.clazz.ch27.d04.PatternDemo04.Demo();
            //BiliBiliCSharpStudy.clazz.ch27.d01.PatternDemo01.Demo();
            //BiliBiliCSharpStudy.clazz.ch26.OverrideExample.Demo();
            //BiliBiliCSharpStudy.clazz.access2.HelloAccess2.Demo();
            //BiliBiliCSharpStudy.clazz.access.HelloAccess.Demo();
            //HelloOOP.Demo();
            //ClassDemo1Hello.Demo();
            //EventDemo07.Demo();
            //EventDemo06.Demo();
            //EventDemo05.Demo();
            //EventDemo04.Demo();
            //EventDemo03.Demo();
            //EventDemo02.Demo();
            //EventDemo01.Demo();
            //DelegateDemo5InsteadByInterface.Demo();
            //MulticastDelegateDemo.Demo();
            //DelegateDemo3.Demo();
            //DelegateDemo2Customize.Demo();
            //DelegateDemo1.Demo();
            //ParametersExtensionDemo.demo();
            //ParametersDemo2.demo();
            //ParamsParammeterDemo.demo();
            //OutParameterDemo.demo();
            //ParametersDemo.demo();
            //ConstAndReadonlyDemo.demo();
            //IndexerDemo.demo();


            // ====
            //Console.WriteLine("Hello World!");
            //double result = Calculator.Add(1, 2.6);
            //Console.WriteLine(result);
            //Calculator2 c = new Calculator2();
            //c.PrintXTo1(10);
            //string str = Convert.ToByte("-1000", 2).ToString();
            //Console.WriteLine(str);
            //short s = -1000;
            //Console.WriteLine(Convert.ToString(s, 2));
            //Console.WriteLine(Convert.ToString(1000, 2));
            //Type myType = typeof(Student0);
            //Console.WriteLine(myType.FullName);
            //Console.WriteLine(myType.IsClass);
            //sbyte xx = 1;


            //BiliBiliCSharpStudy.old.TypeOfDemo.demo();

            //BiliBiliCSharpStudy.old.DefalutDemo.demo();
            //VarDemo.demo();
            //BiliBiliCSharpStudy.old.NewDemo.demo();
            //BiliBiliCSharpStudy.old.CheckDemo.demo();
            //BiliBiliCSharpStudy.old.SizeOfDemo.demo();
            //PointerOptDemo.demo();
            //UnaryOperatorDemo.demo();
            //TypeConversionDemo.demo();
            //RelationalOperatorDemo.demo();
            //OtherOperatorDemo.demo();
            //NullableDemo.demo();
            //DelegateDemo.demo();
            //FormDemo1.demo();
            //SentenceDemo.demo();
            //SentenceDemo02.demo();
            //LoopWhileDemo.demo();
            //DemoForMultiplicationTable.demo();
            //ForEachDemo.demo();
            //DemoForReturn.demo();
            //ReadonlyDemo.demo();
            //PropertyDemo.demo();
        }
    }


    class Student0 {
        public uint Id;
        public uint Score;
    }

    class Calculator2 {
        public void PrintXTo1(int x) {
            if (x == 1) {
                Console.WriteLine(x);
            } else {
                Console.WriteLine(x);
                PrintXTo1(x - 1);
            }
        }
    }

}
